package model.persistence.vo;

import java.io.IOException;
import java.io.Serializable;
import java.util.Set;
import javax.management.modelmbean.ModelMBean;
import javax.persistence.Entity;
import javax.persistence.EntityResult;
import javax.persistence.FieldResult;
import javax.persistence.Id;
import javax.persistence.NamedNativeQuery;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SqlResultSetMapping;


@Entity
public class Filme extends JMESerializable {
    
    private int id_filme;
    
    private int notaCritica;
    
    private String nome;
    
    private String faixa_etaria;
    
    private String sinopse;
    
    private int ranking;
    
    private Set<Sala> salas;
    
    @OneToMany(mappedBy = "filme")
    public Set<Sala> getSalas() {
        return salas;
    }
    
    public void setSalas(Set<Sala> salas) {
        this.salas = salas;
    }
    
    @Id
    public int getId_filme() {
        return id_filme;
    }
    
    public void setId_filme(int id_filme) {
        this.id_filme = id_filme;
    }
    
    public String getFaixa_etaria() {
        return faixa_etaria;
    }
    
    public void setFaixa_etaria(String faixa_etaria) {
        this.faixa_etaria = faixa_etaria;
    }
    
    public String getNome() {
        return nome;
    }
    
    public void setNome(String nome) {
        this.nome = nome;
    }
    
    public String getSinopse() {
        return sinopse;
    }
    
    public void setSinopse(String sinopse) {
        this.sinopse = sinopse;
    }
    
    public byte[] serialize() throws IOException, InterruptedException {
        initSerialize();
        
        dataOut.writeInt(id_filme);
        dataOut.writeInt(ranking);
        dataOut.writeInt(notaCritica);
        dataOut.writeUTF(nome);
        dataOut.writeUTF(faixa_etaria);
        dataOut.writeUTF(sinopse);
        
        return binayOut.toByteArray();
    }
    
    public void unserialize(byte[] data) throws IOException, InterruptedException {
        
    }
    
    public int getRanking() {
        return ranking;
    }
    
    public void setRanking(int ranking) {
        this.ranking = ranking;
    }
    
    public int getNotaCritica() {
        return notaCritica;
    }
    
    public void setNotaCritica(int notaCritica) {
        this.notaCritica = notaCritica;
    }
}
